1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for efficiently enabling a determination to be made regarding whether a memory system that is being powered on was previously powered down normally or abnormally.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
In general, flash memory storage systems may include flash memory cards and flash memory chip sets. Flash memory chip sets generally include flash memory components and a controller components. Typically, a flash memory chip set may be arranged to be assembled into an embedded system. The manufacturers of such assemblies or host systems typically acquire flash memory in component-form, as well as other components, then assemble the flash memory and the other components into a host system.
When a memory system is powered down, the power down may either occur because a user has shut down the memory system, or because there has been a loss of power to the memory system. If a user chooses to power down the memory system, the memory system generally completes substantially all current processes, e.g., the memory system completes a process of writing a file from a host system into a directory associated with the memory system. If a power down occurs because of an unexpected or abrupt loss of power due to a power failure, for example, then current processes are not completed and are instead typically aborted.
A memory system which has been powered down under “normal” circumstances, as for example in response to a user request to cut power to the memory system, generally does not require a disk scan or data recovery to be performed, as all processes which were occurring at the time a power down request was received have been completed. This is typically referred to as a “normal shutdown” or “normal power down.” However, a memory system which has been powered down under “abnormal” circumstances, e.g., due to a power failure, battery failure or accident power removal, typically requires a disk scan and a data recovery to be performed, as will be appreciated by those skilled in the art. The power down under abnormal circumstances is typically referred to as an “abnormal shutdown” or an “abnormal power down.”
In a conventional flash non-volatile memory system, it is generally not possible for the memory system to determine whether a power down has occurred because of an intended, e.g., user, shut down or because of a power failure. As a result, relatively time consuming recovery processes, for example, a “scandisk” process in the Windows/DOS environment, are typically applied each time the memory system is powered up whether it has been powered down normally or abnormally. While applying scandisk or similar processes when the memory system was previously shut down under abnormal circumstances enables data recovery to occur, applying the processes when the memory system was shut down under normal circumstances may be inefficient, as such recovery processes are effectively unnecessary.
Therefore, what is desired is a process and a system which enables a determination to be made when a memory system is powered up as to whether the memory system was previously shut down normally or abnormally. That is, what is needed is an efficient method for allowing data associated with a memory system which was shut down abnormally to be restored when the memory system is powered up, without causing the memory system to undergo processes associated with restoring the data when the memory system was shut down normally.